The technology described herein relates to a method of and an apparatus for generating an overdrive frame for use when “overdriving” a display.
It is common for electronic devices, such as mobile phones, and for data processing systems in general, to include some form of electronic display screen, such as an LCD panel. To display an output on the display, the pixels (picture elements) of the display must be set to appropriate colour values. This is usually done by generating an output frame to be displayed which indicates, for each pixel or sub-pixel, the colour value to be displayed. In the case of LCD panels, for example, the output frame colour values are then used to derive drive voltage values to be applied to the pixels and/or sub-pixels of the display so that they will then display the desired colour.
It is known that LCD displays, for example, have a relatively slow response time. This can lead to undesirable artefacts, such as motion blur when displaying rapidly changing or moving content, for example.
Various techniques have accordingly been developed to try to improve the response time of LCD (and other, such as OLED) displays. One such technique is referred to as “overdrive”. Overdrive involves applying drive voltages to the display pixels and/or sub-pixels that differ from what is actually required for the desired colour, to speed up the transition of the display pixels towards the desired colour. Then, as the pixels and/or sub-pixels approach the “true” desired colour, the drive voltage is set to the actual required level for the desired colour (to avoid any “overshoot” of the desired colour). (This uses the property that liquid crystals in LCD displays are slow to start moving towards their new orientation but will stop rapidly, so applying a relatively “boosted” voltage initially will accelerate the initial movement of the liquid crystals.)
Other terms used for overdrive include Response Time Compensation (RTC) and Dynamic Capacitance Compensation (DCC). For convenience the term overdrive will be used herein, but it will be understood that this is intended to include and encompass all equivalent terms and techniques.
To perform the overdrive operation, an output, “overdrive” frame that is the frame (pixel values) that is sent to the display for display (and thus used to determine the drive voltages to apply to the pixels and/or sub-pixels of the display) is derived. The output, overdrive frame pixel values are based on the pixel values for the next frame (the new frame) to be displayed and the pixel values for the previously displayed frame (or for more than one previously displayed frame, depending on the actual overdrive process being used). The overdrive frame pixel values themselves can be determined, e.g., by means of a calculation or algorithm that uses the new and previous frame(s) pixel and/or sub-pixel values, or by using a look-up table or tables of overdrive pixel values for given new and previous frame(s) pixel and/or sub-pixel values, etc., as is known in the art.
FIGS. 1 and 2 illustrate overdrive operation. FIG. 1 shows a set of input frames to be displayed 10 and the corresponding frames 11 as they are displayed when overdrive is not used. As can be seen in the examples shown in FIG. 1, in the case of the second frame (Frame 2) in the sequence, the displayed frame without using overdrive will be lighter than the intended input frame due to the delay in the LCD display transitioning to the new input frame's colour values.
FIG. 2 then shows the situation where overdrive is used. Again, there is a set of input frames 10, but in this case those input frames are used to calculate a set of overdrive frames 20, that are the frames that are actually sent to the display for display. As shown in FIG. 2, the overdrive frame for Frame 2 is actually darker than the desired input frame, but that results in the displayed pixels in the frame 21 transitioning more rapidly to the required colour (i.e. corresponding to the input frame).
FIG. 3 shows an exemplary data processing system 30 that includes an overdrive engine 31 that generates overdriven frames for provision to a display for display.
As shown in FIG. 3, the data processing system includes a central processing unit (CPU) 32, a graphics processing unit (GPU) 33, a video engine 34, the overdrive engine 31, and a display controller 35 that communicate via an interconnect 36. The CPU, GPU, video engine, overdrive engine and display controller also have access to off-chip memory 37 for storing, inter alia, frames, via a memory controller 38.
The GPU 33 or video engine 34 will, for example, generate a frame for display. The frame for display will then be stored, via the memory controller 38, in a frame buffer in the off-chip memory 37.
When the frame is to be displayed, the overdrive engine 31 will then read the frame from the frame buffer in the off-chip memory 37 and use that frame, together with one or more previously displayed frames to calculate an overdrive frame that it will then store in the off-chip memory 37. The display controller 35 will then read the overdrive frame from the overdrive frame buffer in the off-chip memory 37 via the memory controller 38 and send it to a display (not shown) for display.
FIG. 4 shows the operation of the overdrive engine 31 in more detail. As shown in FIG. 4, the overdrive engine will read the current frame 40 and one or more previous frames 41 from the frame buffers in off-chip memory 37, and use those frames to generate an overdrive frame 42 that it writes into an overdrive frame buffer in the off-chip memory 37. The display controller 35 will then read the overdrive frame 42 from memory and provide it to a display for display.
Although overdrive can improve the response time of a display, the Applicants have recognised that the calculation of the overdrive frame can consume a significant amount of power and memory bandwidth. For example, to calculate the overdrive frame, the next and previous input frame(s) must be fetched and analysed, with the overdrive frame then being written back to memory for use. For example, for a 2048×1536×32 bpp×60 fps display, that accordingly requires 720 MB/s data to be fetched (the display controller fetch) for a given frame, fetching the previous and next input frames, analysing them, and writing out the overdrive frame will require an additional 2.2 GB/s (comprising the new and previous frame fetch and overdrive frame write).
The Applicants believe that there remains scope for improvements to overdrive arrangements for displays.
Like reference numerals are used for like features throughout the drawings, where appropriate.